package com.zoweunion.mechanic.service.shangji;

import com.zoweunion.mechanic.model.User;
import com.zoweunion.mechanic.model.app.ReportViolations;
import com.zoweunion.mechanic.util.MyException;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

public interface ShangJiService {

	/**
	 * 插入举报信息
	 * @param reportViolations
	 * @return
	 */
	boolean insertReportViolations(ReportViolations reportViolations);

	/**
	 * 获取推荐列表
	 * @return
	 */
	List<Map<String, Object>> listRecommend(Map<String, Object> reqMap) throws Exception;
	/**
	 * 获取品牌列表
	 * @return
	 */
	List<Map<String, Object>> listBrand(Map<String, Object> reqMap);
	/**
	 * 获取品牌列表
	 * @return
	 */
	Map<String, Object> listBrandClassify(Map<String, Object> reqMap);

	/**
	 * 为租售表设置经纬度
	 */
	void setLatitudeAndLongitudeForBuyInfo() throws MyException;

	/**
	 * 为维修店铺表设置经纬度
	 */
	void setLatitudeAndLongitudeForShopInfo() throws MyException;

	/**
	 * 设置维修店铺评价
	 */
	void setEvaluationsForShopInfo() throws MyException;
	/** 职位类型随机处理 */
	void setWorkTypeRandom() throws MyException;
	/** 出租租赁方式随机处理 */
	void setRentalMethodForBuyInfoRandom() throws MyException;

	Map<String, Object> publish(User user, Map<String, Object> reqMap) throws MyException;
	
	//int uploadPhoto(MultipartFile file) throws MyException;

	List<Map<String, Object>> getShopList(Map<String, Object> map,User currentUser,String device) throws MyException;

	List<Map<String, Object>> getShopListNew(Map<String, Object> map,User currentUser,String device) throws MyException;

	int getShopListCount(Map<String, Object> map);
	
	Map<String, Object> getShopInfo(Map<String, Object> map, User currentUser,String device) throws Exception;

	boolean updateShopExamineFlag(Map<String, Object> map) throws Exception;

	List<Map<String, Object>> getzhongbiaoList(Map<String, Object> map,User currentUser,String device) throws Exception;
	
	List<Map<String, Object>> getzhongbiaoInfo(Map<String, Object> map,User currentUser,String device) throws Exception;
	
	int publishCars(Map<String, Object> map) throws Exception;

	int publishBuyerInfo(Map<String, Object> map) throws Exception;

	List<Map<String, Object>> getpublishCarsList(Map<String, Object> map) throws Exception;

	Map<String, Object> publishJoberInfo(User user, Map<String, Object> map) throws Exception;

	boolean updateJoberExamineFlag(Map<String, Object> map) throws Exception;

	List<Map<String, Object>> getpublishBuyerInfoList(Map<String, Object> map) throws Exception;

	Map<String, Object> getJoberInfoList(Map<String, Object> map,User currentUser,String device) throws Exception;
	
	Map<String, Object> getJoberInfo(Map<String, Object> map, User currentUser,String device) throws Exception;

	Map<String, Object> publishRecruitInfo(User user, Map<String, Object> reqMap) throws Exception;

	boolean updateRecruitExamineFlag(Map<String, Object> map) throws Exception;

	Map<String, Object> getRecruitInfoList(Map<String, Object> map,User currentUser,String device) throws Exception;
	
	Map<String, Object> getRecruitInfo(Map<String, Object> map, User currentUser,String device) throws Exception;

	List<Map<String, Object>> getCarType(Map<String, Object> map) throws Exception;
	
	List<Map<String, Object>> getCarBrand(Map<String, Object> map) throws Exception;
	
	List<Map<String, Object>> getCarModel(Map<String, Object> map) throws Exception;
	
	List<Map<String, Object>> getCarInfo(Map<String, Object> map) throws Exception;

	List<Map<String, Object>> getClickCarHistory(Map<String, Object> map) throws Exception;

	Map<String, Object> getPublicCarInfo(User user, Map<String, Object> map,String device) throws Exception;
	
	Map<String, Object> getPublicCarDetail(Map<String, Object> map, User currentUser,String device) throws Exception;

	Map<String, Object> addPublicCarDetail(User user, Map<String, Object> map);

	void pushUser(User user, Map<String,Object> pushMap);

	void updateBuyinfoPromotion(User user, Map<String, Object> map);

	boolean updateCarDetailExamineFlag(Map<String, Object> map) throws Exception;

	boolean systemCheckData(Map<String, Object> map) throws Exception;

	HashMap<String, Object> getSystemCheckData(Map<String, Object> map) throws Exception;

	List<Map<String, Object>> getPublicCarInfoByLonlat(Map<String, Object> map);
	
	List<Map<String, Object>> province(Map<String, Object> reqMap);

	List<Map<String, Object>> city(Map<String, Object> reqMap);

	List<Map<String, Object>> area(Map<String, Object> reqMap);
	
	Map<String, Object> getMallList(Map<String, Object> map);
	
	Map<String, Object> getNewsList(Map<String, Object> reqMap);

	Map<String, Object> getNewsDetail(Map<String, Object> reqMap);

	List<Map<String, Object>> getModelList(Map<String, Object> reqMap);

	List<Map<String, Object>> getMechanicsType() throws MyException;

	List<Map<String, Object>> getSaleMechanicsType(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getSaleMechanicsTypeClassify(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getBrandAttribute(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getTypeBrandAttribute(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getMechanics(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getInquiryInfo(Map<String, Object> reqMap) throws MyException;

	int insertInquiry(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> insertMyCollection(User currentUser, Map<String, Object> reqMap,String device) throws MyException;

	int deleteMyCollection(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getMyCollection(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> myCollectionSearch(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getTypeMyCollection(Map<String, Object> reqMap) throws MyException;

	List<Map<String, Object>> getMyCollectionType(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getMyCollectionId(Map<String, Object> reqMap) throws MyException;

	int addMycollectionSearchRecord(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getMycollectionSearchRecord(Map<String, Object> reqMap) throws MyException;

	int delMycollectionSearchRecord(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getTypeConfigure(Map<String, Object> reqMap) throws MyException;

	int insertTypeConfigure(Map<String, Object> reqMap) throws MyException;

	int updateRecentVisitCity(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getRecentVisitCity(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getMyRelease(Map<String, Object> reqMap) throws MyException;

	boolean saveMyRelease(String uId, String uName, String oId, String type, String subject);

	Map<String, Object> getMyReleaseNew(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> myReleaseSearch(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getHotCity() throws MyException;

	Map<String, Object> getMyReleaseId(Map<String, Object> reqMap) throws MyException;

	int deleteMyRelease(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> getActivitySignInByUserId(String userId) throws MyException;

	Map<String, Object> activitySignIn(User currentuser, Map<String, Object> reqMap) throws MyException;

	Map<String, Object> activitySignInPrize(Map<String, Object> reqMap) throws MyException;

	void insertSignIn(String userId, int signInCount, int drawsCount);

	Map<String, Object> saveActivitySignInPrize(Map<String, Object> reqMap) throws MyException;

	Map<String, Object> saveActivitySignInPrizeNew(Map<String, Object> reqMap) throws MyException;

	List<Map<String, Object>> listPrize(Map<String, Object> reqMap);

	Map<String, Object> getShareInvitationCode(String userId) throws MyException;

	List<Map<String, Object>> listSharePrizeSelf(String userId) throws MyException;

	List<Map<String, Object>> listMyInvitePeople(User currentUser) throws MyException;

	Map<String, Object> savePrizeRecipient(Map<String, Object> reqMap) throws MyException;

	List<Map<String, Object>> listSharePrizeLastTenData() throws MyException;

	/**
	 * 获取最新10条分享得到的流量(虚拟数据)
	 * @return
	 */
	List<Map<String, Object>> listShareAppLastTenData();

	Map<String, Object> getShareByUserId(String userId) throws MyException;

	Map<String, Object> getShareByInvitationCode(String userId) throws MyException;

	Map<String, Object> useShareInvitationCode(User user, Map<String, Object> reqMap) throws MyException;

	void updateBrowseRandom();

	Map<String, Object> getBannerPicPathList(User user) throws IOException;

	int updateTelConsult(Map<String, Object> reqMap) throws MyException;

	/**
	 *修改招聘信息
	 * @param reqMap
	 * @param currentUser
	 * @return
	 */
	int updateRecruitInfo(Map<String, Object> reqMap, User currentUser);

	/**
	 * 修改求职信息
	 * @param reqMap
	 * @param currentUser
	 * @return
	 */
	int updateJoberInfo(Map<String, Object> reqMap, User currentUser);

	/**
	 * 修改店铺信息
	 * @param reqMap
	 * @param currentUser
	 * @return
	 */
	int updateShop(Map<String, Object> reqMap, User currentUser);

	/**
	 * 修改租售信息
	 * @param reqMap
	 * @param currentUser
	 * @return
	 */
	int updatePublicCarDetail(Map<String, Object> reqMap, User currentUser);

	/**
	 * 获取轮播图
	 * @param user
	 * @return
	 */
	Map<String, Object> getBannerPic(User user);

	List<Map<String, Object>> copyBuyInfoFile(Map<String, Object> map);

	/**
	 * 分享获取分数
	 * @param reqMap
	 * @return
	 */
    int shareBehavior(Map<String, Object> reqMap,User currentUser,String device);

	/**
	 * 获取新机列表
	 * @param reqMap
	 * @param user
	 * @return
	 */
	Map<String, Object> getNewMachineList(Map<String, Object> reqMap,User user);

	/**
	 * 新机详情
	 * @param map
	 * @param currentUser
	 * @param device
	 * @return
	 */
	Map<String, Object> getNewMachineDetail(Map<String, Object> map, User currentUser, String device);
}
